package com.hankol.winecellar.bean

import android.annotation.SuppressLint
import com.baselibrary.base.BasicBean
import kotlinx.android.parcel.Parcelize
import kotlinx.android.parcel.RawValue

@SuppressLint("ParcelCreator")
@Parcelize
data class OrderBean(
        var id: Int = 0,
        var word: String? = null,
        var creatorId: Int = 0,
        var status: Int = 0,
        var count: Int = 0,
        var ctime: Long = 0,
        var utime: Long = 0
) : BasicBean()

@SuppressLint("ParcelCreator")
@Parcelize
data class DataListBean(
        val bottomPager: BottomPager,
        val bottomRows: @RawValue List<Any>,
        val keyword: String,
        val tabInfo: TabInfoBean,
        val topRows: TopRowsBean
) : BasicBean()

@SuppressLint("ParcelCreator")
@Parcelize
data class TopRowsBean(
        val ctime: Int,
        val gid: Int,
        val id: Int,
        val opt: String,
        val resp: String,
        val uid: Int,
        val utime: Int
) : BasicBean()

@SuppressLint("ParcelCreator")
@Parcelize
data class TabInfoBean(
        val name: String,
        val searchType: Int,
        val totalCount: Int
) : BasicBean()

@SuppressLint("ParcelCreator")
@Parcelize
data class GroupDetailBean(
        val address: String,
        val cover: String,
        val ctime: Long,
        val desc: String,
        val groupMemberCount: Int,
        val groupRecommendPlace: Int,
        val groupRecommendStatus: Int,
        val hasJoinedGroup: Boolean,
        val host: Boolean,
        val id: Int,
        val lastGroupOptLog: LastGroupOptLog,
        val memberNameList: @RawValue List<Any>,
        val notice: String,
        val noticeCreateTime: Long,
        val socialGatheringCount: Int,
        val socialGatheringList: @RawValue List<Any>,
        val socialGatheringTitleList: @RawValue List<Any>,
        val sort: Int,
        val status: Int,
        val timelineCount: Int,
        val title: String,
        val utime: Long,
        val virtualMember: Int
) : BasicBean()

@SuppressLint("ParcelCreator")
@Parcelize
data class LastGroupOptLog(
        val ctime: Int,
        val gid: Int,
        val id: Int,
        val opt: String,
        val resp: String,
        val uid: Int,
        val utime: Int
) : BasicBean()

@SuppressLint("ParcelCreator")
@Parcelize
data class UserBean(
        val alternate: Int,
        val birthdate: String,
        val cityId: Int,
        val ctime: Int,
        val desc: String,
        val districtId: Int,
        val focusFans: Boolean,
        val friends: Int,
        val height: String,
        val icon: String,
        val id: Int,
        val inviteInfo: String,
        val isChannel: Int,
        val isForum: Int,
        val isWinery: Int,
        val money: String,
        val name: String,
        val phone: String,
        val provinceId: Int,
        val remark: String,
        val sex: Int,
        val title: String,
        val userRank: Int,
        val userType: Int,
        val weight: String
) : BasicBean()

@SuppressLint("ParcelCreator")
@Parcelize
data class BottomPager(
        val count: Int,
        val cursor: String,
        val `data`: List<Data1Bean>,
        val hasnext: Boolean,
        val nextCursor: String,
        val page: Int,
        val preCursor: String,
        val size: Int,
        val totalCount: Int,
        val totalPage: Int
) : BasicBean()

@SuppressLint("ParcelCreator")
@Parcelize
data class Data1Bean(
        val address: String,
        val atMemberIds: @RawValue List<Any>,
        val atMembers: @RawValue List<Any>,
        val author: String,
        val authorIcon: String,
        val browseNum: Int,
        val checkReson: String,
        val cityId: Int,
        val commentNum: Int,
        val content: String,
        val cover: String,
        val createTime: Long,
        val ctime: Long,
        val desc: String,
        val districtId: Int,
        val ext: String,
        val favoriteNum: Int,
        val favorited: Boolean,
        val forwardId: Int,
        val forwardNum: Int,
        val gid: Int,
        val groupDetail: GroupDetailBean,
        val gtitle: String,
        val hot: Int,
        val id: Int,
        val images: List<String>,
        val isHot: Int,
        val isRecommend: Int,
        val lastCommentOffsetCtime: Int,
        val latitude: Int,
        val longitude: Int,
        val outForwardNum: Int,
        val provinceId: Int,
        val publishTime: Long,
        val recommend: Boolean,
        val rewardScore: Int,
        val searchWord: String,
        val shareToken: String,
        val showType: Int,
        val sort: Int,
        val source: String,
        val status: Int,
        val supportNum: Int,
        val supportUsers: @RawValue List<Any>,
        val supported: Boolean,
        val tagIds: List<Int>,
        val tags: List<String>,
        val thumbnail: String,
        val title: String,
        val uid: Int,
        val updateStatus: Int,
        val user: UserBean,
        val utime: Long,
        val video: String,
        val voice: String,
        val wineryId: Int
) : BasicBean()

//创建订单 需要传的参数
@SuppressLint("ParcelCreator")
@Parcelize
data class CreateOrderBean(
        var cartIds: String? = null,
        var num: Int = 0,
        var skuId: Long = 0,
        //提货方式，0-邮寄，1-线下机构提货
        var postOption: Int = 0,
        var consumeScore: Long = 0,
        var desc: String? = null,
        var pickUpUserName: String? = null,
        var pickUpUserPhone: String? = null,
        var pickUpWineCellarId: Long = 0,
        //积分抵扣价格
        var scoreDeductPrice: Long? = 0,
        var shouldPayPrice: Long? = 0,
        var userAddressId: Int = 0,
        //消费尊享币
        var consumeGsScore: Long = 0L,
        //消费尊享币抵扣金额(分)
        var gsScoreDeductPrice: Long = 0,
        //我的尊享币
        var myGsScore: Long = 0,
        //memberStatus：0正常 1冻结
        var memberStatus: Int = 0,
        //0元购 需要的参数 砍价单id
        var discountOrderId: Long = 0
) : BasicBean()

@SuppressLint("ParcelCreator")
@Parcelize
data class WxPaySignBean(
        val appid: String,
        val noncestr: String,
        val `package`: String,
        val partnerid: String,
        val prepayid: String,
        val sign: String,
        val timestamp: String
) : BasicBean()

//评价列表
@SuppressLint("ParcelCreator")
@Parcelize
data class EvaluateOutBean(
        val marrowList: @RawValue List<Any>,
        val normalList: List<EvaluateListBean>
) : BasicBean()

@SuppressLint("ParcelCreator")
@Parcelize
data class EvaluateListBean(
        val commentNum: Int,
        val content: String,
        val ctime: Long,
        val cueCid: Int,
        val cueContent: String,
        val ext: String,
        val id: Int,
        val images: List<String>,
        val pid: Int,
        val puid: Int,
        val puname: String,
        val replyComments: @RawValue List<Any>,
        val replyContent: String,
        val replyCount: Int,
        val replyUid: Int,
        val rewardScore: Int,
        val spuName: String,
        val status: Int,
        val supportNum: Int,
        val supported: Boolean,
        val type: Int,
        val typeId: Int,
        val uid: Int,
        val user: EvaluateUserBean,
        val utime: Long,
        val voice: String

) : BasicBean()

@SuppressLint("ParcelCreator")
@Parcelize
data class EvaluateUserBean(
        val alternate: Int,
        val birthdate: String,
        val cityId: Int,
        val ctime: Int,
        val desc: String,
        val districtId: Int,
        val focusFans: Boolean,
        val friends: Int,
        val height: String,
        val icon: String,
        val id: Int,
        val isFans: Int,
        val inviteInfo: String,
        val isChannel: Int,
        val isForum: Int,
        val isWinery: Int,
        val money: String,
        val name: String,
        val phone: String,
        val provinceId: Int,
        val remark: String,
        val sex: Int,
        val title: String,
        val userRank: Int,
        val userType: Int,
        val weight: String
) : BasicBean()